/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            佛祖保佑       永无BUG
*/
$NG.AllReady(function (
	page,
	{ useValuesChange, useClick, useUpdateRow, useUpdateRows, useDataIndexChange }
) {
	console.log("Data ready event triggered");
	const mstform = $NG.getCmpApi("p_form_employ_records");
	const grid = $NG.getCmpApi("p_form_employ_records_d");
    
  if(page.oType=='add'){
    $NG.updateState((updater)=>{
      updater.data.p_form_employ_records.setProps({
        u_year:{
          label:new Date().getFullYear(),
          value:new Date().getFullYear()
        },
        u_month:new Date().getMonth()+1
      })
      setTimeout(()=>{
        getDateIn()
      },200)
    })
  }


  useValuesChange(({args})=>{
    getProjectInfo()
    getUserInfo()
    nameFilterD()
  },"p_form_employ_records.phid_pc")

  // 监听表格行为
  useUpdateRows(({args})=>{
    console.log(`表格行为监听`, args);
    initUserType(args[0])
  },"p_form_employ_records_d")

  useValuesChange(({args})=>{
    getDateIn()
  }, "p_form_employ_records.u_year")

  useValuesChange(({args})=>{
    getDateIn()
  }, "p_form_employ_records.u_month")

  useUpdateRow(({args})=>{
    getNameFirstCardId(args[0].u_hr_name,args[0])
  },"p_form_employ_records_d")

  //获取外包人员信息
  function getNameFirstCardId(phid,el){
    console.log(phid,el);
    $NG.execServer("getNameFirstCardId",{phid},(res)=>{
        console.log(res);
        if(res.count == 0) return 
        const _data = JSON.parse(res.data)[0].extendObjects
        el.idno = _data.sfz
        grid.refreshView()
    })
  }
  // 获取项目
  getProjectInfo()
  function getProjectInfo(isReturn = false, phid = mstform.getItem("phid_pc").getValue(), fun){
    if(!mstform.getItem("phid_pc").getValue()) return
    try{
        setTimeout(()=>{
            $NG.execServer("getPtInfoByPhid",{phid: phid}, (res)=>{
                const _data = JSON.parse(res.data)[0].extendObjects
                console.log(`获取项目信息`, _data);
                if(isReturn){
                    fun(_data)
                } else {
                    $NG.updateState((updater)=>{
                        updater.data.p_form_employ_records.setProps({
                          u_division: {
                                //事业部or组织
                                value: _data.org_phid,
                                label: _data.org_name,
                            },
                        })
                    })
                }
            })
        },100)
    }catch(err){
        $NG.alert("获取项目信息发生失败请检查~")
    }
}
// 根据项目获取到外包人员
function getUserInfo(){
  $NG.execServer("getWbUserInfoIsPhidPc", {phid:mstform.getItem("phid_pc").getValue()}, function(res){
    console.log(`获取项目下面的用户信息`, JSON.parse(res.data));
    const _data = JSON.parse(res.data)
    addUserToTabel(_data)
  })
}
nameFilterD()
function nameFilterD(){
  const phid_pcc = $NG.getCmpApi('p_form_employ_records').getItem('phid_pc').getValue();
  if(!phid_pcc){
    return 
  }
  $NG.updateUI(updater => updater.editGrid.p_form_employ_records_d.u_hr_name.setProps((p) => {
    return {
      ...p, editor: {
        ...p.editor,
        clientSqlFilter: { xm: $NG.getCmpApi('p_form_employ_records').getItem('phid_pc').getValue() },
      }
    };
  }));
}
// 获取时间区间
  // 获取时间区间
  function getDateIn() {
    if (!mstform.getItem("u_year").getValue() || !mstform.getItem("u_month").getValue()) {
      return;
    }
    console.log(`测试时间`, Number(mstform.getItem("u_year").getValue()), Number(mstform.getItem("u_month").getValue()));
    $NG.execServer(
      "getAccperByYearMonth",
      {
        year: Number(mstform.getItem("u_year").getValue()),
        month: Number(mstform.getItem("u_month").getValue()),
        // year: "'" + Number(mstform.getItem("u_year").getValue()) + "'",
        // month: "'" + Number(mstform.getItem("u_month").getValue()) + "'",
      },
      function (res) {
        console.log(res);
        if (res.count == 0) {
          $NG.alert("当前年、月，无法获取区间！");
        }
        const datas = JSON.parse(res.data)[0].extendObjects;
        console.log(`获取日期区间`, datas);
        $NG.updateState((updater) => {
          updater.data.p_form_employ_records.setProps({
            u_start_dt: datas.begindt,
            u_end_dt: datas.enddt,
          });
        });
      }
    );
  }
// 添加行
function addUserToTabel(_arr){
  const _tabelData = []
  _arr.forEach(item => {
    console.log(item);
    const _map ={}
    _map.u_employment_type = item.extendObjects.yglx
    _map.u_hr_no = item.extendObjects.ry_no
    _map.u_hr_name = item.extendObjects.phid
    _map.u_hr_name_EXName = item.extendObjects.ry_name
    _map.idno = item.extendObjects.sfz
    _tabelData.push(_map)
  });
  grid.addRows(_tabelData)
  grid.refreshView()
}

// 默认每一行的用工类型都为研发
function initUserType(_data){
  _data.forEach((item)=>{
    item.u_employment_type = '02'
  })
  grid.refreshView()
}
});

